//
//  File.swift
//  officialDemoNavi-Swift
//
//  Created by menglong on 2021/10/29.
//  Copyright © 2021 AutoNavi. All rights reserved.
//

import Foundation
import UIKit

//  3D 版隐私协议
class AMapPrivacyUtility : NSObject {
    
    static let shared = AMapPrivacyUtility()
    private override init() {}
    let privacyInfo = "\n1.本应用需要获取您的定位信息以提供相应服务；\n2.需要您的同意才能正常使用；\n3.如果您不同意可能会无法使用部分功能"
   
    lazy var opS:[nameBtnAction] = {
        var opS = [nameBtnAction]()
             opS = [nameBtnAction(name: "同意", action: { _ in
          
                 UserDefaults.standard.set(true, forKey: "agreeStatus")
                 UserDefaults.standard.synchronize()
                 if isBaiduMapPlatform() {
                     // 更新用户授权百度SDK隐私协议状态. since 8.1.0
                     BNaviService.setAgreePrivacy(true)
                 } else {
                     //更新用户授权高德SDK隐私协议状态. since 8.1.0
                     AMapNaviManagerConfig.shared().updatePrivacyAgree(AMapPrivacyAgreeStatus.didAgree)

                 }
                 
                 self.vvv.dismiss()
            }), nameBtnAction(name: "不同意", action: { _ in
          
                UserDefaults.standard.set(false, forKey: "agreeStatus")
                UserDefaults.standard.synchronize()
                if isBaiduMapPlatform() {
                    BNaviService.setAgreePrivacy(false)
                } else {
                    //更新用户授权高德SDK隐私协议状态. since 8.1.0
                    AMapNaviManagerConfig.shared().updatePrivacyAgree(AMapPrivacyAgreeStatus.notAgree)
                }
                self.vvv.dismiss()
            })]
        return opS
    }()
    lazy var  vvv : ComAlertV = {
        let v = ComAlertV()
         return v
    }()
    /**
     * @brief 通过这个方法来判断是否同意隐私合规
     * 1.如果没有同意隐私合规，则创建的SDK manager 实例返回 为nil， 无法使用SDK提供的功能
     * 2.如果同意了下次启动不提示 的授权，则不会弹框给用户
     * 3.如果只同意了，则下次启动还要给用户弹框提示
     */
    @discardableResult
     func handlePrivacyAgreeStatus() -> Bool {
        KSLog("查询隐私政策阅读情况")
        //判断是否需要同步了下次不提示
        if !UserDefaults.standard.bool(forKey: "agreeStatus") {
            //添加隐私合规弹窗
          
//            if !isBaiduMapPlatform() {
                showPrivacyInfoInWindow()
//            }
            return false
        } else {
            return true
        }
    }
    
    /*
     * 展示隐私合规弹框
     */
    private func showPrivacyInfoInWindow(){
        DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 0.5) {
            if !self.vvv.isShow() {
                self.vvv.add(title: "温馨提示", message: self.privacyInfo, operateS: self.opS)
                self.vvv.present()
                //更新App是否显示隐私弹窗的状态，隐私弹窗是否包含高德SDK隐私协议内容的状态. since 8.1.0
                AMapNaviManagerConfig.shared().updatePrivacyShow(AMapPrivacyShowStatus.didShow, privacyInfo: AMapPrivacyInfoStatus.didContain)
            }
        }
    }
}
